<a href="http://github.com/angular/angular.js/edit/master/docs/content/error/compile/nonassign.ngdoc" class="improve-docs btn btn-primary"><i class="icon-edit"> </i> Improve this doc</a><h1><code ng:non-bindable="">Non-Assignable Expression</code>
<div><span class="hint">error in component <code ng:non-bindable="">$compile</code>
</span>
</div>
</h1>
<div><pre class="minerr-errmsg" error-display="Expression '{0}' used with directive '{1}' is non-assignable!">Expression '{0}' used with directive '{1}' is non-assignable!</pre>
<h2 id="description">Description</h2>
<div class="description"><div class="-compile-page -compile-nonassign-page"><p>This error occurs when a directive defines an isolate scope property
(using the <code>=</code> mode in the <a href="api/ng.$compile#description_comprehensive-directive-api_directive-definition-object"><code><code>scope</code> option</code></a> of a directive definition) but the directive is used with an expression that is not-assignable.</p>
<p>In order for the two-way data-binding to work, it must be possible to write new values back into the path defined with the expression.</p>
<p>For example, given a directive:</p>
<pre><code>myModule.directive(&#39;myDirective&#39;, function factory() {
  return {
    ...
    scope: {
      &#39;bind&#39;: &#39;=localValue&#39;
    }
    ...
  }
});</code></pre>
<p>Following are invalid uses of this directive:</p>
<pre><code>&lt;!-- ERROR because `1+2=localValue` is an invalid statement --&gt;
&lt;my-directive bind=&quot;1+2&quot;&gt;

&lt;!-- ERROR because `myFn()=localValue` is an invalid statement --&gt;
&lt;my-directive bind=&quot;myFn()&quot;&gt;</code></pre>
<p>To resolve this error, always use path expressions with scope properties that are two-way data-bound:</p>
<pre><code>&lt;my-directive bind=&quot;some.property&quot;&gt;
&lt;my-directive bind=&quot;some[3][&#39;property&#39;]&quot;&gt;</code></pre>
</div></div>
</div>
